#include <stdio.h>

/* return不可以返回指向栈内存的指针
 * */

char* func0100(void) {
    char str[30];
    printf("str:%x\n", str);
    printf("&str:%x\n", &str);
    printf("sizeof(&str):%x\n", sizeof(&str));
    printf("&str[0]:%x\n", &str[0]);
    printf("&str+1:%x\n", &str+1);
    //printf("(int)&str+1:%x\n", (int)&str+1);
    printf("&str[0]+1:%x\n", &str[0]+1);
    printf("sizeof(str):%x\n", sizeof(str));
    printf("sizeof(&str[0]):%x\n", sizeof(&str[0]));
    printf("sizeof(str[0]):%x\n", sizeof(str[0]));
    // return str; // 返回的局部变量str分配在栈上，函数返回后栈会清空，会出错
    return NULL;
}

void func0101(void) {
    return;
}

int main() {
    func0100();

    return 0;
}
